import CesiumApp from '../CesiumApp';
import { HiddenTool } from './HiddenTool';
import { IsolateTool } from './IsolateTool';
import { RotateTool } from './RotateTool';
import { ZoomInTool } from './ZoomInTool';
import { ZoomOutTool } from './ZoomOutTool';
import { UndoTool } from './UndoTool';
import { RedoTool } from './RedoTool';
import { PanTool } from './PanTool';
import { DistanceTool } from './DistanceTool';
import { LocationTool } from './LocationTool';
import { ElevationTool } from './ElevationTool';
import { AreaTool } from './AreaTool';
import { AngleTool } from './AngleTool';
import { ClipByBoxTool } from './ClipByBoxTool';
import { ClipByLineTool } from './ClipByLineTool';
import { ClipByPlaneTool } from './ClipByPlaneTool';
import { ClipByPointsTool } from './ClipByPointsTool';
import { ComponentTransparentTool } from './ComponentTransparentTool';
import { ComponentColorTool } from './ComponentColorTool';
import { ComponentIsolateTool } from './ComponentIsolateTool';
import { ComponentPositionTool } from './ComponentPositionTool';
import { ComponentQueryTool } from './ComponentQueryTool';
import { ComponentMultiSelect } from './ComponentMultiSelect';
import { SelectionTool } from './SelectionTool';
import { PropertiesTool } from './PropertiesTool';

export default async function registerCesiumAppTool() {
	CesiumApp.tools.register(HiddenTool);
	CesiumApp.tools.register(IsolateTool);
	CesiumApp.tools.register(RotateTool);
	CesiumApp.tools.register(ZoomInTool);
	CesiumApp.tools.register(ZoomOutTool);
	CesiumApp.tools.register(UndoTool);
	CesiumApp.tools.register(RedoTool);
	CesiumApp.tools.register(PanTool);
	CesiumApp.tools.register(DistanceTool);
	CesiumApp.tools.register(LocationTool);
	CesiumApp.tools.register(ElevationTool);
	CesiumApp.tools.register(AreaTool);
	CesiumApp.tools.register(AngleTool);
	CesiumApp.tools.register(ClipByBoxTool);
	CesiumApp.tools.register(ClipByPointsTool);
	CesiumApp.tools.register(ClipByPlaneTool);
	CesiumApp.tools.register(ClipByLineTool);
	CesiumApp.tools.register(ComponentTransparentTool);
	CesiumApp.tools.register(ComponentColorTool);
	CesiumApp.tools.register(ComponentIsolateTool);
	CesiumApp.tools.register(ComponentPositionTool);
	CesiumApp.tools.register(ComponentQueryTool);
	CesiumApp.tools.register(ComponentMultiSelect);
	CesiumApp.tools.register(SelectionTool);
	CesiumApp.tools.register(PropertiesTool);
}
